package com.qf.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 从连接池中获取数据源
 * @author 千锋健哥
 */
public class DataSourceUtil {

    //声明连接池数据源对象
    private static DruidDataSource ds;

    static {
        // 1. 创建Properties资源实体对象
        Properties properties = new Properties();
        try {
            // 2. 通过输入流读取Properties文件中的内容
            InputStream inputStream = DataSourceUtil.class.getResourceAsStream("/database.properties");
            //将读取到的内容, 传入资源文件中
            properties.load(inputStream);
            // 3. 将读取到的内容, 传入数据源中, 创建数据源对象
            ds = (DruidDataSource)DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据源
     */
    public static DataSource getDataSource() {
        return ds;
    }


    /**
     * 获取连接
     */
    public static Connection getConnection() {
        try {
            //从数据源, 连接池中获取连接对象返回
            Connection connection = ds.getConnection();
            return connection;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}
